#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
WigoTravelChat Remove Time Fields Script
移除每个旅行数据中的 createdAt 和 updatedAt 时间字段
"""

import json
import os
import sys

def kumiBadRemoveTimeFields(file_path=None, prefix=None):
    """移除JSON文件中每个数据的 createdAt 和 updatedAt 字段

    Args:
        file_path (str, optional): JSON文件路径，如果不提供则提示用户输入
        prefix (str, optional): 字段前缀，如果不提供则提示用户输入
    """

    # 如果没有提供文件路径，则提示用户输入
    if file_path is None:
        print("🔍 请输入JSON文件路径:")
        print("   - 可以是绝对路径 (如: /path/to/file.json)")
        print("   - 可以是相对路径 (如: data/file.json)")
        print("   - 直接按回车使用默认文件: HeraShareFriendsTaskMockData.json")

        user_input = input("📁 文件路径: ").strip()

        # 如果用户直接按回车，使用默认文件
        if not user_input:
            file_path = 'HeraShareFriendsTaskMockData.json'
            print(f"📋 使用默认文件: {file_path}")
        else:
            file_path = user_input

    # 如果没有提供前缀，则提示用户输入
    if prefix is None:
        print("\n🏷️ 请输入字段前缀:")
        print("   - 例如: WigoTravelChat, MyProject, AppName 等")
        print("   - 直接按回车使用默认前缀: WigoTravelChat")

        user_prefix = input("🔤 字段前缀: ").strip()

        # 如果用户直接按回车，使用默认前缀
        if not user_prefix:
            prefix = 'WigoTravelChat'
            print(f"📋 使用默认前缀: {prefix}")
        else:
            prefix = user_prefix

    # 检查文件是否存在
    if not os.path.exists(file_path):
        print(f"❌ 错误: 找不到文件 '{file_path}'")
        return False

    try:
        # 读取JSON文件
        print(f"📖 正在读取文件: {file_path}")
        with open(file_path, 'r', encoding='utf-8') as file:
            kumiBadJsonData = json.load(file)
        
        # 统计移除的字段数量
        kumiBadRemovedCreatedAt = 0
        kumiBadRemovedUpdatedAt = 0
        
        # 移除每个旅行数据中的时间字段
        for kumiBadTrip in kumiBadJsonData:
            if 'createdAt' in kumiBadTrip:
                del kumiBadTrip['createdAt']
                kumiBadRemovedCreatedAt += 1
            
            if 'updatedAt' in kumiBadTrip:
                del kumiBadTrip['updatedAt']
                kumiBadRemovedUpdatedAt += 1

        # 保存更新后的JSON文件
        print(f"💾 正在保存文件: {file_path}")
        with open(file_path, 'w', encoding='utf-8') as file:
            json.dump(kumiBadJsonData, file, indent=2, ensure_ascii=False)

        print("✅ 时间字段移除完成！")
        print(f"📊 总共处理了 {len(kumiBadJsonData)} 条记录")
        print(f"🗑️ 移除了 {kumiBadRemovedCreatedAt} 个 createdAt 字段")
        print(f"🗑️ 移除了 {kumiBadRemovedUpdatedAt} 个 updatedAt 字段")

        # 验证移除结果
        kumiBadRemainingCreatedAt = 0
        kumiBadRemainingUpdatedAt = 0
        for kumiBadTrip in kumiBadJsonData:
            if 'createdAt' in kumiBadTrip:
                kumiBadRemainingCreatedAt += 1
            if 'updatedAt' in kumiBadTrip:
                kumiBadRemainingUpdatedAt += 1

        if kumiBadRemainingCreatedAt == 0 and kumiBadRemainingUpdatedAt == 0:
            print("🔍 验证结果: 所有时间字段已成功移除")
        else:
            print(f"⚠️ 验证结果: 仍有 {kumiBadRemainingCreatedAt} 个 createdAt 和 {kumiBadRemainingUpdatedAt} 个 updatedAt 字段未移除")
        
        return True

    except json.JSONDecodeError:
        print(f"❌ 错误: JSON文件格式不正确 '{file_path}'")
        return False
    except Exception as e:
        print(f"❌ 错误: {str(e)}")
        return False

def main():
    """主函数，支持命令行参数"""
    if len(sys.argv) > 1:
        # 如果提供了命令行参数
        file_path = sys.argv[1]
        prefix = sys.argv[2] if len(sys.argv) > 2 else None
        print(f"📋 使用命令行参数指定的文件: {file_path}")
        if prefix:
            print(f"🏷️ 使用命令行参数指定的前缀: {prefix}")
        kumiBadRemoveTimeFields(file_path, prefix)
    else:
        # 否则进入交互模式
        kumiBadRemoveTimeFields()

if __name__ == "__main__":
    main()